package cn.fl.spl.service;

import cn.cmm.base.framework.exception.BaseException;
import cn.fl.spl.vo.AppStatsDataVO;
import fl.mongo.facade.analysis.condition.AppStatsDataCondition;
import fl.mongo.facade.base.page.PaginationVo;
import java.util.List;

/**
 * Created by jiangzhongge on 2018-3-2.
 * Time 11:29.
 * Class belongs to fl-ass-service.
 */
public interface IAppStatsDataService {

    public List<AppStatsDataVO> getAppStatsDataList(AppStatsDataCondition condition) throws BaseException ;

    public int  insertAppStatsData(AppStatsDataVO appStatsDataVO) throws BaseException;

    public boolean modifyAppStatsData(AppStatsDataCondition condition, AppStatsDataVO appStatsDataVO) throws BaseException ;

    public boolean upsertAppStatsData(AppStatsDataCondition condition, AppStatsDataVO appStatsDataVO) throws BaseException ;

    public AppStatsDataVO getOneAppStatsData(AppStatsDataCondition condition) throws BaseException ;

    public PaginationVo getAppStatsDataListByPage(PaginationVo paginationVo) throws BaseException ;

    /**
     * @param isDeWeight 是否去重
     * */
    public Long statisAppStatsDataCount(AppStatsDataCondition condition, Integer isDeWeight) throws BaseException;

    public List<AppStatsDataVO>  queryAggregationDataInfo(AppStatsDataCondition condition, String groupType, String groupParam, String aliasParam, String projectType, String sortType, String sortParam, String... fields);

}
